package com.asen.commons.core.base.vo;

import com.asen.commons.annotation.FieldBillType;
import com.asen.commons.annotation.FieldEnum;
import com.asen.commons.core.base.model.BaseEnumItem;
import com.asen.commons.core.base.enums.FieldQueryTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 字段属性
 *
 * @author ls
 * @version 1.0
 * @date 2024-04-10
 */
@Data
@ApiModel("字段属性")
public class FieldVo {

    @ApiModelProperty("属性名")
    private String name;

    @ApiModelProperty("属性别名")
    private String alias;

    @ApiModelProperty("Java类型")
    private String javaType;

    @ApiModelProperty("属性类型")
    private String type;

    @ApiModelProperty("关联类型")
    private String refType;

    @ApiModelProperty("字段名")
    private String column;

    @ApiModelProperty("字段类型")
    private String columnType;

    @FieldBillType
    @ApiModelProperty("单据类型")
    private String billType;

    @ApiModelProperty("枚举值列表")
    private List<BaseEnumItem> enumList;

    @ApiModelProperty("字段列表")
    private List<FieldVo> fieldList;

    @FieldEnum(FieldQueryTypeEnum.class)
    @ApiModelProperty("查询字段类型")
    private String queryType;

    @ApiModelProperty("日期格式")
    private String dateFormat;

}
